# coding:utf-8

####################################################################
# 一，脚本语法说明：
# [类型字段, 命令字段, 匹配结果字段, 超时时间字段, 错误等级字段]
# 1，类型字段：
# 0：AT命令
# 1：延迟
# 2：数据
# 3：命令嵌套
# 2，命令字段：
# 1）AT命令
# [0, 'AT命令字符串', '匹配结果', 超时时间（单位s）, 错误等级字段]
# 2）延迟命令
# [1, 延迟时间（单位ms）, '', '', '']
# 3）发送数据
# [2, '数据内容', '匹配结果', 超时时间(单位s), 错误等级字段]
# 4）命令嵌套
# [2, 命令列表名称, '', '', 错误等级字段]
# 3，匹配结果字段：
# 1）单行字符串('string')：按照字符串查找方式，匹配AT返回中的某一行，如果匹配成功就认为命令执行成功
# 2) 单行正则表达式(Reg('reg')): 按照正则表达式匹配方式，匹配AT返回中某一行，如果匹配成功就认为命令执行成功
# 3）多行字符串(FullMatch('string_line1\r\nstring_line2')): 按照字符串查找方式，匹配AT返回中的多行，如果匹配成功就认为命令执行成功
# 4）多行正则表达式(ReMatch('reg1[\s\S]+reg2')): 按照正则表达式匹配方式，匹配AT返回的多行，如果匹配成功就认为命令执行成功
# 4，超时时间字段：
# 如果执行【命令字段】后没有匹配到【匹配结果字段】，就会等待超时，超时时间单位为s
# 5，错误等级字段
# 0：忽略该条命令匹配错误继续执行下一行
# 1：如果该条命令匹配错误就停止执行
####################################################################
#apn1 = 'wonet'
ipReg = '(\d{1,3}\.){3}(2[0-4]\d|25[0-5]|[01]?\d?[0-9])'
apnReg = '\w+(\.\w+)*'
#tcpip_cgdcont_reg = '\+CGDCONT: [7-9],\"IP\w*\",\"'+apnReg+'\","'+ipReg+'".*[\s\S]+OK\r\n'
tcpip_cgdcont_reg = '\+CGDCONT: [7-9],\"IP\w*\",\"\w+(\.\w+)*\","(\d{1,3}\.){3}(2[0-4]\d|25[0-5]|[01]?\d?[0-9])".*[\s\S]+OK\r\n'

cip_init = [
    [0, 'AT+CIPSHUT', 'SHUT OK', 30, 1],
    [0, 'AT+CIPSHOWTP=0', 'OK', 1, 1],
    [0, 'AT+CIPSRIP=0', 'OK', 1, 1],
    [0, 'AT+CIPQSEND=0', 'OK', 1, 1],
    [0, 'AT+CIPRXGET=0', 'OK', 20, 1],
    [0, 'AT+CIPMUX=0', 'OK', 1, 1],
    [0, 'AT+CIPMODE=0', 'OK', 1, 1],
    [0, 'AT+CIPHEAD=0', 'OK', 1, 1],
    [0, 'AT+CIPSSL=0', 'OK', 5, 1],
    [0, 'AT+SAPBR=0,1', Reg('\+CME .+'), 5, 0],
    [0, 'AT+SAPBR=0,2', Reg('\+CME .+'), 5, 0],
    [0, 'AT+HTTPTERM', Reg('\+CME .+'), 5, 0],
    [0, 'AT+FTPQUIT', Reg('\+CME .+'), 5, 0],
]
cip_pdp = [
    #[0, 'ATE0', 'OK',1,1],
    [3, cip_init, '', '', 1],

    [0, 'AT+CSTT="'+apn1+'"', 'OK', 5, 1],
    [0, 'AT+CIICR', 'OK', 20, 1],
    [0, 'AT+CIFSR', Reg('(\d{1,3}.){3}\d{1,3}'), 2, 1],
    [0, 'AT+CIPSTART="TCP","121.40.198.143",12415', 'CONNECT OK', 50, 1],
    [0, 'AT+CIPSEND=10\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
        FullMatch('SEND OK\r\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\r\n'), 20, 1],
    [0, 'AT+CIPSEND=10\r0123456789',
        FullMatch('SEND OK\r\n0123456789\r\n'), 20, 1],



    [0, 'AT+CFUN=4', '+PDP: DEACT', 20, 1],

    [0, 'AT+CIPSHUT', 'SHUT OK', 5, 1],

    [0, 'AT+CGREG=1', 'OK', 5, 1],

    [0, 'AT+CFUN=1', '+CGREG: 1', 50, 1],

    [0, 'AT+CGREG=0', 'OK', 5, 1],
    [1, 2000, "", "", ""],
    [1, 2000, "", "", ""],



    #[0,'AT+SAPBR=0,1', 'OK', 5, 1],
    [0, 'AT+SAPBR=3,1,"CONTYPE","GPRS"', 'OK', 20, 1],
    [0, 'AT+SAPBR=3,1,"APN","'+apn1+'"', 'OK', 20, 1],
    [0, 'AT+SAPBR=1,1', 'OK', 20, 1],
    [0, 'AT+SAPBR=2,1', 'OK', 20, 1],

    [0, 'AT+CFUN=4', '+SAPBR 1: DEACT', 20, 1],

    [0, 'AT+CGREG=1', 'OK', 5, 1],

    [0, 'AT+CFUN=1', '+CGREG: 1', 50, 1],

    [0, 'AT+CGREG=0', 'OK', 5, 1],
    [1, 2000, "", "", ""],
    [1, 2000, "", "", ""],




]

# cmdlist = [
#	[3, pdp_ciicr,'','',1],
#[3, pdp_sapbr,'','',1],
# ]
